Rosenstiel, Wolfgang, o.Prof., Dr. rer. nat.
Ache Garcez, Edelweis Helena, Dipl.-Inform. (Stipendium)
Babanine, Alexei, Dipl.-Math. (Stipendium)
Bogdan, Martin, Dipl.-Ing.
Bubeck, Till, Dipl.-Inform. (Drittmittel)
Bullmann, Jörg, Dipl.-Inform. (Drittmittel, 06/95 bis 05/96)
Cechin, Adelmo, Dipl.-Ing. (Drittmittel)
Eikerling, Heinz-Josef, Dr. rer. nat. (Drittmittel, bis 11/96)
Eppler, Thomas, Dr. rer. nat. (Stipendium)
Fang, Xiang, Dipl.-Ing. (Stipendium)
Gebhardt, Alexander, Dr. rer. nat. (Stipendium)
Gerlach, Joachim, Dipl.-Inform. (Drittmittel, seit 09/95)
Göppert, Josef, Dr. rer. nat.
Gutberlet, Peter, Dr. rer. nat.
Haug, Gunter, Dipl.-Inform. (Drittmittel, seit 01/97)
Heim, Gerald, Dipl.-Inform. (seit 01/97)
Hergenhan, André, Dipl.-Ing. (Drittmittel, seit 10/95)
Heuser, Udo , Dipl.-Inform. (Drittmittel, seit 01/97)
Hüttemann, Stefan, Dipl.-Phys. (Drittmittel, seit 04/96)
Koch, Gernot, Dipl.-Inform. (Drittmittel)
Kuhn, Tommy, Dipl.-Inform. (Drittmittel, seit 08/96)
Lange, Walter, Dipl.-Ing. (Stipendium)
Ludwig, Lothar, Dipl.-Inform. (Drittmittel, seit 04/96)
Martin, Hans-Georg, Dipl.-Math. (Drittmittel, seit 01/97)
Moreira do Nascimento, Francisco Assis, Dipl.-Inform (Stipendium)
Schubert, Endric, Dr. rer. nat. (bis 05/96)
Schubert, Eva, Dr.-Ing. (Drittmittel, bis 09/95)
Schubert, Jürgen, Dr. rer. nat. (Drittmittel, bis 12/95)
Thole, Peter, Dipl.-Ing. (Drittmittel)
Trautwein, Christoph, Dipl.-Inform. (Drittmittel)
Wedeck, Jörg, Dr. rer. nat. (bis 04/96)
Weiß, Karlheinz, Dipl.-Ing. (Drittmittel)
Bringmann, Oliver, Dipl.-Inform. (Drittmittel)
Buchholz, Tim, Dipl.-Inform. (Drittmittel, seit 06/95)
Hansen, Cordula, Dipl.-Inform. (Drittmittel)
Kebschull, Udo, Prof., Dr. rer. nat. (Drittmittel, bis 08/95)
Kunzmann, Arno, Dr. rer. nat. (Drittmittel)
Seepold, Ralf, Dipl.-Inform. (Drittmittel)
Weiler, Christoph, Dipl.-Inform. (Drittmittel)
Weinmann, Ulrich, Dr. rer. nat. (Drittmittel, bis 12/95)
Dreher, Werner, Dipl.-Phys., Technischer Angestellter
Eisele, Annegret, Sekretärin
Reiter, Diana, Sekretärin (FZI)
Die Arbeiten des Arbeitsbereiches ,,Technische Informatik`` beschäftigen sich schwerpunktmäßig mit Fragen der Technologie, Organisation und Architektur von Rechnersystemen. Ein besonderer Schwerpunkt ist in diesem Zusammenhang der rechnergestützte Entwurf hochintegrierter Schaltungen, den ein Großteil der Arbeiten in ,,Lehre und Forschung`` betreffen. Als interessante zukünftige Strukturen von Rechnerarchitekturen gewinnen ,,künstliche neuronale Netze`` an Bedeutung, mit denen sich in diesem Zusammenhang der Arbeitsbereich ,,Technische Informatik`` ebenfalls ausführlich beschäftigt. Die Arbeitsgebiete des Arbeitsbereichs ,,Technische Informatik`` sind im einzelnen wie folgt gegliedert:
Mit aufgenommen in diesen Jahresbericht sind die Arbeiten, die Prof. Dr. W. Rosenstiel in Dienstaufgabe am Forschungszentrum Informatik (FZI) durchführt. Am FZI arbeiten im Forschungsbereich ,,Systementwurf in der Mikroelektronik`` (SiM), der von Prof. Rosenstiel geleitet wird, die oben zusätzlich erwähnten Mitarbeiter.
Eingebettete Systeme, die häufig auch unter dem Schlagwort ,,Invisible Computing`` umschrieben werden, sind praktisch in allen technischen Systemen des täglichen Lebens enthalten und damit allgegenwärtig. Diese Allgegenwart in der modernen Industriegesellschaft hat kürzlich die New York Times in einem Leitartikel zum Anlaß genommen, darüber zu berichten, daß es der Durchschnitts-Amerikaner im Laufe eines normalen Arbeits- und Freizeit-Tages mit über 60 Mikroprozessoren zu tun hat. Davon stecken möglicherweise nur 1 bis 2 in den privaten oder geschäftlichen Computern, mit denen dieser ,,Durchschnitts-Amerikaner`` umgeht. Alle anderen Mikroprozessoren sind Bestandteil von eingebetteten Systemen, die die komplette Spanne von der Raumfahrt über Flugzeuge, Automobile, Züge, industrielle Automation, Robotik, elektronische Spiele, den Audio- und Videobereich bis hin zu biomedizinischen Implantaten abdecken. Prof. Rosenstiel ist Koordinator eines neuen DFG-Schwerpunktprogramms mit dem Thema ,,Entwurf und Entwurfsmethodik eingebetteter Systeme``.
Unter anderem im Rahmen des DFG Sonderforschungsbereichs 358 ( Automatisierter Systementwurf ) Teilprojekt B3 ( HW/SW Partitionierung und Entwurfs-Transformationen ) werden Verfahren untersucht, die den automatisierten Entwurf eingebetteter Systeme ausgehend von einer hohen Beschreibungsebene gestatten. Ausgangspunkt ist eine Beschreibung des Gesamtverhaltens auf Systemebene. Diese ist gegeben in Form von Standard C-Code. In diesem Code werden zunächst Abschnitte identifiziert, die sich für eine Hardware-Realisierung eignen ( HW/SW-Codesign ). Im Anschluß daran wird eine Optimierung der Beschreibung vorgenommen, wobei hauptsächlich Techniken aus dem Bereich des Compilerbaus (z.B. Entrollen von Schleifen, Propagierung von Konstanten) zum Einsatz kommen ( High-Level Transformationen ). Die so erhaltene optimierte Entwurfsbeschreibung wird dann automatisch in eine Register-Transfer Darstellung transformiert ( High-Level Synthese ). Man erhält so eine Strukturbeschreibung bestehend aus einem Controller und einem Datenpfad. Diese kann z.B. durch Verschiebung von Schaltungs-Komponenten über die Controller-/Datenpfad-Schnittstelle hinweg weiter optimiert werden ( Repartitionierung-/Resynthese ). Die daraus resultierende Register-Transfer-Struktur kann dann mittels bekannter Techniken der Logik-Synthese weiterbearbeitet werden.
Zum Thema ,,Eingebettete Systeme`` werden im einzelnen die folgenden Arbeiten durchgeführt:
Im Berichtszeitraum stand die Entwicklung neuer Methoden für den Entwurf ,,eingebetteter Systeme`` für die industrielle Automation im Vordergrund. Hierzu wurde eine flexible Entwurfsumgebung für eingebettete Systeme erstellt, die speziell auf die Erfordernisse des Bereichs der industriellen Automation abgestimmt ist. Berücksichtigt wurden moderne 32-Bit Mikrocontroller und anwenderprogrammierbare Hardware (FPGAs), aber auch dedizierte ASICs bzw. ASIPs und Schnittstellen. Die realisierte Entwurfsumgebung ermöglicht eine Analyse und Evaluierung unterschiedlicher System-Architekturen, um hieraus ebenen- und komponentenübergreifende Modelle und Methoden für den Entwurf eingebetteter Systeme ableiten zu können.
Eine erste Stufe der Implementierung besteht in der Bereitstellung einer FPGA-Entwurfsumgebung, die prototypisch implementiert wurde und sich bereits bei einigen Applikationen (ASI-Mehrstranglösungen, Profibus-Monitor) bewährt hat. Im Vordergrund der Konzeption stand nicht so sehr, eine Plattform mit mehreren FPGAs zu erhalten, auf die ein Entwurf partitioniert werden kann. Vielmehr wurde das Ziel verfolgt, eine FPGA-Infrastruktur mit mehreren FPGAs unterschiedlicher Technologien, Komplexitäten und Geschwindigkeiten bereitzustellen, die es ermöglicht, noch während der Testphase ein gegebenes Design relativ einfach auf unterschiedliche Bausteine zu portieren. Somit ist erst in einer späten Designphase die endgültige, kostengünstigste Realisierung anhand der evaluierten Leistungserfordernisse festzulegen.
Stärker technologieorientiert ist ein Vorhaben, das sich mit der Konzeption und Validierung eines Hochleistungs-ASI-Masters für Sensor-Aktor-Vernetzung befaßte. Für die Hersteller von intelligenten Prozeßperipherieelementen bedeutet das Fehlen einer leistungsfähigen Steuerelektronik - der sogenannten ASI-Master-Anschaltung - bis heute ein Engpaß, der den Einsatz innovativer ASI-fähigen Sensoren und Aktuatoren stark einschränkt. Im Rahmen des Verbundvorhabens ASIMA wurde die Voraussetzung geschaffen, daß die beteiligten Firmen auf der Grundlage eines gemeinsam erarbeiteten und prototypisch erprobten Konzepts eigene leistungsfähige Masteranschaltungen ohne großes technisches und wirtschaftliches Risiko entwickeln, produzieren und zusammen mit ihren Sensoren vermarkten können. Hierzu wurde am FZI eine prototypische Entwicklung eines ASI-Masters durchgeführt, der aus einem einfachen eingebetteten Controller (MC80C320), mehreren Speicherelementen, Standardschnittstellen sowie einem kleinen FPGA besteht. Dieser Prototyp wurde an sechs mittelständische Unternehmen übergeben und dient heute in deren Entwicklungsabteilungen als Referenzdesign für eigene ASI-Weiterentwicklungen.
Der Profibus ist ein an RS-485 angelehnter Feldbus. Die Datenrate wurde durch eine Erweiterung der Spezifikation von 500 kBd auf 12 MBd angehoben. Aufgabe der Arbeit war es, eine Hardware zu konzeptionieren und prototypisch zu implementieren, die mittels eines Laptops ein Analysewerkzeug für diesen Bus realisiert. Probleme waren die hohe Datenrate (12 MBd) und die kleine Bauform (PCMCIA).
Im Verlauf der Arbeit mußte eine grundsätzliche Technologieauswahl getroffen werden, die auf FPGAs fiel. Es wurde ein Design der Hardware in einer HDL erstellt, durch Simulation verifiziert und auf einer am FZI entwickelten Prototypenhardware implementiert. Im weiteren wurde der genaue FPGA-Typ ausgewählt und das Design auf diesen Typ hin optimiert.
Besonderes Gewicht lag auf der Demonstration der gewählten Entwurfsmethodik: Das ganze Design wird zuerst in HDL beschrieben und dann auf einer bestehenden Prototypenhardware implementiert. Es steht so sehr schnell eine lauffähige Version zur Verfügung. Diese kann dann als Basis sowohl für die Softwareentwicklung als auch für die Optimierung der Hardware genutzt werden.
Die effiziente Wiederverwendung von Schaltungsbeschreibungen bildet eine wichtige Grundlage für eine schnelle und kostengünstige Entwicklung komplexer Systeme. Durch die Verwendung von abstrakten Beschreibungssprachen, beispielsweise VHDL, wird eine modulare Systemspezifikation ermöglicht. Jedes Modul dieser Spezifikation besteht aus einer Menge von Elementen, die durch Komponenten, Funktionen und Prozeduren gebildet werden. Der modulare Aufbau einer VHDL-Spezifikation bietet die Möglichkeit, Module separat zu beschreiben und damit anderen Entwürfen wieder zur Verfügung zu stellen (Wiederverwendung). Durch die beschriebene Struktur ergeben sich Module unterschiedlicher Komplexität, die im wesentlichen durch die Komplexität der Elemente bestimmt wird. Die Elemente eines Moduls können ebenfalls modular aufgebaut sein. Somit ist es möglich, die Wiederverwendung von Elementen und Modulen gleichermaßen zu berücksichtigen.
Sowohl durch den konventionellen Entwurfsprozeß als auch durch die gezielte Entwicklung leistungsfähiger Elemente kann eine Wiederverwendungsbasis aufgebaut werden, auf die zum Systementwurf zurückgegriffen werden kann. Die Leistungsfähigkeit des Wiederverwendungsprozesses wird dabei maßgeblich von einem effizienten Zugriff auf die Wiederverwendungsdatenbasis bestimmt. Aktuelle Untersuchungen zeigen, daß eine geeignete Klassifizierung der Komponenten den Schlüssel zur Wiederverwendung darstellt und deshalb eine wichtige Voraussetzung für einen erfolgreichen Wiederverwendungsprozeß ist. Die effiziente Einbindung von Wiederverwendung in den Entwurfsablauf setzt eine innovative Wiederverwendungsdatenbank und einen geeigneten Anschluß an die High-Level Synthese voraus. Beide Systembestandteile sind eng miteinander zu verbinden und erfordern daher eine abgestimmte Entwicklung der notwendigen Schnittstellen.
Um die Lücke zwischen der Wiederverwendungsdatenbank und der High-Level Synthese zu schließen, wurde und wird im Rahmen dieser Arbeiten ein Klassifikationsschema entwickelt, das den Zugriff auf die Wiederverwendungsmodule unterstützt. Der Zugriff auf die Module erfolgt dabei über eine Internet-basierte Client/Server-Lösung, die in der Programmiersprache JAVA implementiert wird. Durch diese Implementierung wird eine plattformunabhängige Schnittstelle realisiert, die die verteilte Entwicklung von komplexen Modulen für Intra-Netze und WANs bietet. Neben der Klassifizierung spielt die Klassifizierungstechnik eine entscheidende Rolle, um Beziehungen zwischen Elementen der Wiederverwendungsdatenbank definieren zu können, die den Zugriff auf die Elemente selbst und die Extraktion ähnlicher Elemente erlaubt. Durch die skizzierte Wiederverwendungsmethode können für den Entwurf zahlreiche alternative Realisierungsmöglichkeiten bestimmt werden, die selektiert und an die High-Level Synthese geeignet weitergegeben werden können.
Durch die HW/SW-Partitionierung wird ein Teil der gegebenen C-Spezifikation in Form von Software auf einen Standard-Prozessor und der andere Teil in Form von Hardware auf eine spezifische funktionale Einheit abgebildet. Dabei werden einzelne C-Funktionen als elementare Einheiten interpretiert. Die zugrundeliegende Zielarchitektur besteht aus einem Standard-Prozessor (SPARC), welcher über ein HW/SW-Interface mit einer spezifischen funktionalen Einheit zur Realisierung der HW-Komponenten gekoppelt ist. Die Pipeline-Struktur des Prozessors wird dabei vom HW/SW-Interface direkt unterstützt.
Die Partitionierung zielt auf eine Beschleunigung des Gesamtsystems unter Hinzunahme zusätzlicher spezifischer Hardware (in vertretbarem Umfang) ab. Der Codesign-Schritt kann in mehrere Teilschritte zerlegt werden: Zunächst werden innerhalb einer Spezifikationsanalyse statische Kriterien wie Kontrolldominanz und Übergabeparameter, sowie dynamische Kriterien wie Laufzeit- und Speicherzugriffsverhalten heuristisch extrahiert. Für die dynamische Analyse werden dabei Profiling-Daten zugrunde gelegt. Der Partitionierungsalgorithmus entscheidet anhand eines Kostenvektors für jedes Modul der Ausgangsbeschreibung, ob dieses Modul in Hardware oder in Software realisiert werden soll. Ergebnis ist somit jeweils eine Beschreibung für den HW-Anteil und für den SW-Anteil der späteren Implementierung.
Die Beherrschung der Entwurfskomplexität integrierter Schaltungen erfordert Schaltungsbeschreibungen auf möglichst hoher Abstraktionsebene. Besondere Bedeutung kommt hierbei der High-Level-Synthese zu. Das Ziel ist es, eine algorithmische Beschreibung des Verhaltens in eine möglichst optimale Schaltungsstruktur aus Register-Transfer Komponenten umzusetzen. Die am weitesten verbreitete Sprache zur Verhaltens- und Strukturbeschreibung ist die Sprache VHDL.
Im Vorfeld der High-Level-Synthese ist allerdings zunächst die Frage nach der Aufteilung einer gegebenen Spezifikation in Hardware- und Softwarekomponenten zu berücksichtigen. Kostengesichtspunkte sprechen i.d.R. für eine reine Softwarerealisierung, während Aspekte der Geschwindigkeit eher für eine reine Hardwarerealisierung sprechen. Ziel der Synthese muß es daher sein, zunächst eine geeignete Partitionierung in Hardware- und Softwarekomponenten anhand vorgegebener Optimierungskriterien zu finden. Eine sinnvolle Spezifikationssprache muß daher gleichermaßen den Ansprüchen zur Hardwarebeschreibung wie auch den Ansprüchen an eine Programmiersprache gerecht werden. Vor allem die fehlende Objektorientierung, die fehlenden Konzepte zum Ausdruck von Parallelität und die notwendige Werkzeugunterstützung mit all ihren Nachteilen (komplexe Bedienung, kostspielige Anschaffung, Gebundenheit) sind (neben vielen Vorteilen) Nachteile von VHDL.
Die Sprache Java verfügt sowohl über Objektorientierung als auch über Threads zum Ausdruck von Parallelität. Ihre Verwendbarkeit zur Beschreibung von Hardware stellt daher den Schwerpunkt der Arbeiten dar. Es wurde ein Modellierungsparadigma für die Beschreibung auf der RT-Ebene entwickelt. Darüberhinaus wird die Möglichkeit geschaffen, Schaltungsbeschreibungen durch Ausführung zu simulieren. Insbesondere wird die Simulation taktloser Multiprozeßbeschreibungen betrachtet. Eine Analyse der Kommunikationsstruktur einzelner Komponenten erlaubt es, kausale Zusammenhänge darzustellen. Zur Implementierung wurde die Struktur einer Klassenbibliothek aufgezeigt, die eine Simulationsumgebung zur Verfügung stellt.
Das Internet hat sich innerhalb sehr kurzer Zeit zu einem wertvollen Werkzeug entwickelt, das neben der reinen Informationssuche in zunehmendem Maße auch zur Nutzung von Softwaresystemen eingesetzt werden kann. Für diese Anwendungen konnte ein neues Konzept entwickelt und am Beispiel der High-Level Synthese eine erste prototypische Implementierung durchgeführt werden. Hierzu wurden das Synthesesystem CADDY und damit verbundene spezielle Entwurfsabläufe in der Schaltungsentwicklung, die am Lehrstuhl ausgetestet wurden, anderen Einrichtungen per Internet verfügbar gemacht. Diese Systeme wurde von verschiedenen Standorten aus genutzt (insbesondere Dresden und Karlsruhe), ohne daß diese Anwender die Software installieren mußten oder Kenntnisse über den internen Entwurfsablauf der Synthese hatten. Die Nutzung des Kompetenzzentrums Technische Informatik über das Internet trug maßgeblich zum Gelingen des SFB-Projektes 358 bei und wird nun auch verstärkt außerhalb des Projekts angeboten.
Der Entwurf von Hardwarekomponenten zur beschleunigten Ausführung sehr rechenintensiver Aufgaben ist ein wichtiges Gebiet der Technischen Informatik. Im Rahmen des Sonderforschungsbereichs konnte auch gezeigt werden, wie Wissenschaftler von verschiedenen Standorten aus eine gemeinsame Installation nutzen können. Die Vorteile einer solchen Lösung, insbesondere die resultierenden Kostenvorteile, liegen auf der Hand. Es ist daher zu erwarten, daß die Nutzung von Spezialhardware über das Internet zu einem wichtigen Faktor bei der Planung von Systemen werden wird.
Beim Entwurf komplexer Systeme wird man oft mit dem Problem konfrontiert, daß keine zufriedenstellende Spezifikationsmöglichkeit vorhanden ist. Reine Programmiersprachen sind ungeeignet, weil sie nur wenig Möglichkeiten zur Systemstrukturierung und meist keine Möglichkeiten zur Berücksichtigung von Zeit- oder anderen Nebenbedingungen bieten. Formale Sprachen und Hardware-Beschreibungssprachen bieten wenig Möglichkeit, ein System auf hoher Abstraktionsebene zu beschreiben.
Im Rahmen verschiedener Projekte (COBRA, AC-8) wurden am FZI Methoden untersucht, um komplexe Systeme auf hoher Abstraktionsebene in verbreiteten Programmiersprachen (C++/Java) zu beschreiben. Hierzu wurden spezielle Klassen zur Systemspezifikation und -analyse entworfen. Durch diese Erweiterungen ist es möglich, Parallelität auf Systemebene einfach zu beschreiben und automatisch zu analysieren. Darüber hinaus entstehen ausführbare Spezifikationen, welche statische und dynamische Analysemöglichkeiten gewährleisten. Darauf zugeschnittene Analysemethoden erlauben eine weitgehend automatische Untersuchung des Systems. Dies beinhaltet auch die Möglichkeit, das Kommunikationsaufkommen zwischen Systemteilen zu untersuchen.
Neben den für die Systemspezifikation bereitgestellten Klassen sind Analysewerkzeuge in der Entwicklung, um automatisch generierte Analyse-Informationen weiter zu verarbeiten. Die skizzierten Arbeiten werden mit dem Ziel fortgeführt, durch frühzeitige genaue Analysen des Gesamtsystems richtige Entscheidungen bei der Architekturfindung zu treffen, d.h. unter Einhaltung aller vorgegebener Randbedingungen soll eine möglichst günstige Implementierung des Systems für den Entwurf eingebetteter Systeme gefunden werden.
Im Rahmen der Arbeiten zum Thema ,,Rapid Prototyping`` wurden Methoden für eine schnelle Validierung von Realzeitsystemen entwickelt. Ein Realzeitsystem, bestehend aus einer Kombination von Mikroprozessor(en) und spezifischer Hardware, wird mittels einer flexiblen, programmierbaren Emulationshardware idealerweise in Echtzeit ausgeführt und dabei validiert. Ein Ziel dieser Arbeiten ist es, eine geeignete Emulationshardware zu definieren und zu implementieren. Dies erfordert insbesondere Konzepte für eine flexible Einbindung von Mikroprozessoren und Speicherstrukturen, die in Realzeitsystemen typischerweise in Bezug auf Wortbreite und Anzahl der Tore optimiert sind.
Über die reine Entwicklung einer Emulationshardware hinaus stand die Entwicklung eines Verfahrens im Mittelpunkt, das dem Entwerfer ein Debugging auf der Spezifikationsebene erlaubt. Die aus dem Source Level Debugging zum Softwaretest bekannten Konzepte wie Breakpoints und Einzelschrittausführung werden hierzu in die Hardware-Emulation übertragen. Die Kontrolle über den laufenden Prototyp wird durch eine Reihe von Ergänzungen in der Prototyp-Hardware gewährleistet, die im Rahmen der High-Level Synthese spezifiziert werden. Das Zeitverhalten auf Taktebene wird dadurch nicht verändert. Entscheidend ist jedoch, daß durch diese Ergänzungen eine Beobachtbarkeit interner Abläufe bereitgestellt wird. Eine Protokollierung der Synthese ermöglicht die Rückführung interner Daten des Prototypen in die Systemspezifikation.
Ziel der Arbeiten, die im Rahmen des COBRA-Projekts durchgeführt wurden, war die Bestimmung einer generischen Zielarchitektur für das Hardware/Software Codesign. Da konventionelle Architekturen den Einsatz der Hardware und Software nur exklusiv erlauben, kann der Parallelitätsgrad der zu implementierenden Algorithmen nicht genutzt werden. Es wurde daher eine Zielarchitektur entwickelt, die diese Art der parallelen Abarbeitung unterstützt. Die entwickelte Zielarchitektur ermöglicht die gleichzeitige Benutzung beliebiger Teile der Schaltung, sowohl Hardware, als auch Software. Die dabei entstehenden Probleme, die bereits aus dem Gebiet des Prozessorentwurfs bekannt sind, wurden gelöst, indem die dort verwendeten Techniken adaptiert wurden.
Ein zweiter Arbeitsschwerpunkt ist die Emulation von Schaltungen mit Multi-Prozessor-DSPs. Im Bereich der schnellen Prototyp-Erstellung werden heute vorwiegend Systeme eingesetzt, die auf FPGAs basieren. Solche Systeme haben jedoch den Nachteil, das vor der Emulation mehrere Syntheseschritte und eine Technologieabbildung durchgeführt werden müssen. Dieser Ablauf kann leicht mehrere Stunden dauern und muß bei jeder Änderung der Spezifikation erneut durchgeführt werden.
Bei dem im Berichtszeitraum entwickelten Verfahren werden digitale Signalprozessoren (DSPs) der neuesten Generation eingesetzt, um die synthetisierte Schaltung auf Register-Transfer Ebene zu emulieren. Durch dieses Vorgehen wird die zeitaufwendige Erzeugung technologieabhängiger Beschreibungen, wie sie für FPGAs erforderlich ist, umgangen. Darüberhinaus können DSPs meist mit erheblich höheren Taktfrequenzen betrieben werden als FPGAs. Ziel der Arbeiten war es, eine Abbildung der Ergebnisse der High-Level-Synthese zu finden, die es ermöglicht, DSPs als Emulatoren einzusetzen.
High-Level Transformationen erlauben eine zielgerichtete Optimierung einer Entwurfsbeschreibung bereits auf Verhaltensebene. Zum Einsatz kommen dabei vor allem aus der Compilertechnik bekannte Transformationen, wie z.B. Entrollen von Schleifen, Propagieren von Konstanten, Anwendung algebraischer Gesetzmäßigkeiten oder Optimierung von Speicherzugriffen. Ein wesentliches Augenmerk ist dabei auf eine Automatisierung der Transformationsanwendung gerichtet.
Der hier verfolgter Ansatz basiert darauf, High-Level Transformationen nicht als isolierte, der High-Level Synthese vorgeschaltete Aktivität zu betrachten, sondern diese als eine in die High-Level Synthese integrierte Instanz zu interpretieren. Diese enge Kopplung von High-Level-Transformationen und High-Level Synthese ermöglicht eine Optimierung des Designs auf hoher Abstraktionsebene unter Berücksichtigung spezifischer Charakteristika einzelner Syntheseschritte. Wichtige Teilprobleme im Bereich der Transformationssteuerung sind z.B. die Bereitstellung von Verfahren, die eine Abschätzung von Entwurfsergebnissen bereits auf hoher Entwurfsebene gestatten, sowie die Realisierung von effizienten Algorithmen zur Identifikation optimaler Transformations-Sequenzen.
Durch die fortschreitende Entwicklung der Schaltungstechnologie können immer größere Schaltungen auf einem einzigen IC gefertigt werden. Eine Möglichkeit, die steigende Komplexität zu beherrschen, besteht in der Verwendung immer höherer Abstraktionsebenen. Dies führt aber nur dann zu einer Verbesserung des Entwurfsablaufs, wenn geeignete Synthesewerkzeuge schritthaltend zur Verfügung stehen. Wichtiges Forschungsgebiet ist die High-Level Synthese, die eine Schaltungsspezifikation auf algorithmischer Ebene in eine Schaltungsstruktur aus Register-Transfer Komponenten umsetzt.
Eine entscheidende Rolle kommt dabei der verwendeten Spezifikationssprache zu. Die am weitesten verbreitete Sprache ist VHDL (VHSIC Hardware Description Language), die Spezifikationen auf Logik-, Register-Transfer-Ebene und algorithmischer Ebene erlaubt, und dies in den beiden Domänen Struktur- und Verhaltensbeschreibungen. Damit kann VHDL sowohl zur Systemspezifikation als auch zur Darstellung der Syntheseergebnisse vorteilhaft eingesetzt werden.
Im Berichtszeitraum wurde ein Spezifikationsstil entwickelt, der oberhalb der Register-Transfer-Ebene einzuordnen ist und es ermöglicht, zeitliche Funktionsabläufe unabhängig von Taktsignalen festzulegen. Zusätzlich wurden Konzepte erarbeitet, um durch Verwendung generischer Parameter Anforderungen an das Zeitverhalten formulieren zu können, ohne das exakte Verhalten vorgeben zu müssen. Zur Formulierung und Simulation dieser unscharfen Zeitanforderungen konnte die Semantik von VHDL genutzt werden.
Die beschriebenen Konzepte wurden implementiert und in das Synthesesystem CADDY integriert. Besonderer Wert wurde hierbei auf die Ausnutzung der durch den Spezifikationsstil geschaffenen Freiheitsgrade gelegt. So konnte beispielsweise eine Optimierung der Taktfrequenz durchgeführt werden. Die Anforderungen an das Zeitverhalten werden in Randbedingungen der Ablaufplanung transformiert und können so bei der Synthese berücksichtigt werden. Ausgehend von einer algorithmischen VHDL-Spezifikation konnte so ein durchgängiger Synthesepfad geschaffen werden.
Im modernen Systementwurf wird es aus Effizienzgründen immer wichtiger, komplexe Systeme, die sich hierarchisch aus mehreren Teilsystemen zusammensetzen können, in einer Hardwarebeschreibungssprache zu spezifizieren. Um derart komplexe, hierarchisch spezifizierte Systeme effizient bearbeiten zu können, sind geeignete hierarchische Synthesetechniken erforderlich. Alle heute bekannten High-Level Synthesesysteme sind aufgrund der fehlenden oder unzureichenden Hierarchieunterstützung hierzu jedoch ungeeignet.
Die Grundidee der neu entwickelten hierarchischen Synthese besteht darin, die in konventioneller Weise manuell durchgeführte hierarchische Entwurfsmethodik auf die automatische Synthese zu übertragen. Dabei sollen bereits synthetisierte Teilschaltungen als Komponenten in einem komplexeren Gesamtsystem wiederverwendet werden können, wobei insbesondere die hierarchische Struktur der Komponenten zu beachten ist. Die Berücksichtigung der Komponentenstruktur während der Synthese erlaubt einerseits, Teilkomponenten mit gleicher Funktionalität in unterschiedlichen Hierarchieebenen gemeinsam zu nutzen, und andererseits die automatische Auswahl anwendungsspezifischer komplexer Komponenten. Die gemeinsame Nutzung von Teilkomponenten führt nicht nur zu einer Implementierung mit geringerem Flächenbedarf, sondern auch zu einer Verringerung der Systemausführungszeit. Diese Zeit kann dadurch reduziert werden, daß Teilkomponenten zu Zeitpunkten, zu denen sie nicht benutzt werden, für andere Aufgaben zur Verfügung stehen. Darüber hinaus kann die Qualität der Implementierung durch die automatische Auswahl von anwendungsspezifischen Komponenten wesentlich verbessert werden. Ein weiterer wichtiger Aspekt ist die erforderliche Rechenzeit, die sich mit der beschriebenen hierarchischen Synthesetechnik entscheidend reduziert läßt.
Ziel dieser Arbeit ist, eine multikriterielle Optimierung eines Entwurfs mittels Techniken der sequentiellen Resynthese zu erreichen. Optimierungsziele sind dabei Fläche, Verzögerungszeit und Leistungsaufnahme.
Der hier verfolgte Ansatz basiert auf einer Extraktion des sequentiellen Verhaltens von Teilschaltungen. Auf diese Weise wird eine Automaten-Darstellung generiert, welche effizient in symbolischer Form mittels BDDs repräsentiert und manipuliert werden kann. Dabei werden neue Verfahren zur Automatenreduktion untersucht.
Die Bearbeitung großer Schaltungen erfordert in der Regel aus Komplexitätsgründen eine Partitionierung des Entwurfs. Der hier vorgestellte Ansatz orientiert sich dabei nicht an den vorgegebenen Schaltungsblöcken, sondern nimmt eine blockübergreifende Repartitionierung und Optimierung vor. Die dabei zum Einsatz kommenden Algorithmen berücksichtigen Ähnlichkeiten der Register-Transfer Grundelemente (z.B. Addierer, Subtrahierer) sowie die Existenz von hierarchischen Operatoren (z.B. aus 1-Bit Addierern aufgebaute n-Bit Addierer). Auf oberster Ebene erhält man eine Partitionierung der Schaltung in Controller und Datenpfad. In der Arbeit wurde erstmals untersucht, wie Schaltungsblöcke auch über diese Schnittstelle hinweg verschoben werden können.
Beim Entwurf eingebetteter digitaler Systeme findet man heute einen gleichzeitigen Entwurf der anwendungsspezifischen integrierten Schaltungen (ASICs) und der Software. Um die Systeme gemeinsam beschreiben und analysieren zu können, wurde ein Rechnermodell entwickelt, das sowohl ASICs als auch Prozessoren als Bestandteile beinhaltet und Parallelverarbeitung darstellen kann.
Die vorherrschende Sprache für den Entwurf und die Simulation integrierter Schaltungen ist VHDL. Eine gemeinsame Simulation (Cosimulation) eingebetteter Systeme leidet an dem Fehlen leistungsfähiger Simulationsmodelle von Prozessoren für eingebettete Systeme in VHDL. Für den Hyperstone E1 Mikroprozessor wurde ein derartiges Simulationsmodell entwickelt.
Beim Schaltungsentwurf aus algorithmischen Beschreibungen (auch High Level Synthese genannt) ist die optimale Allokation von Speichern eines der zu Zeit wichtigsten Forschungsthemen. Hier wurde ein System entwickelt, das eine Verhaltensbeschreibung unter Ausnutzung von Profilinginformationen in eine Speicherstruktur und einen Datenpfadteil transformiert. Der Datenpfadteil wird dann mit High-Level-Synthesesystemen weiter verarbeitet. Bei den High-Level-Synthese-Systemen sind auch erste kommerzielle Anbieter auf dem Markt. Gemeinsam mit Industriepartnern wurde das ausgereifteste der Systeme an Hand realer Anwendungen evaluiert. Weitere Arbeiten im Bereich der High Level Synthese betrafen Verbesserungen der Modellierung von Datenpfadkomponenten und deren Bibliotheken sowie eine effizientere Technologieabbildung von synthetisierten Datenpfaden auf der Register-Transfer-Ebene. Neben ASICs wurde die für Prototypanwendungen besonders interessante Technologie der FPGAs untersucht.
Die vorgestellten Ansätze wurden mit Anwendungen aus den Bereichen digitale Signalverarbeitung, Telekommunikation und neuronale Netze überprüft.
Einen Beitrag zur Verbesserung der Marktchancen des Synthesewerkzeuges LOG/iC2 lieferte der neu entwickelte Basic VHDL Compiler. Ein erster Prototyp dieses Compilers wurde im Rahmen des Projekts KMU-AC8, einer direkten Fortsetzung des JESSI AC8 Projektes ,,Synthesis, Analysis and Optimization``, in enger Zusammenarbeit mit der Firma ISDATA am FZI implementiert und für eine Integration in die LOG/iC2 Syntheseumgebung vorbereitet. Da dieses Projekt insbesondere dem Technologietransfer der im Rahmen des AC8-Projektes erzielten Ergebnisse diente und hierbei besonderes Augenmerk auf die Bedürfnisse klein- und mittelständischer Unternehmen gelegt wurde, erfolgte ein Test der erstellten Evaluierungsversionen des VHDL-Compilers durch industrielle Anwender. Neben den Rückmeldungen und Wünschen seitens der Anwender steuerten die bereits im Vorgängerprojekt gemachten Erfahrungen die Weiterentwicklung des Prototypen. Der zwischenzeitlich im Praxiseinsatz befindliche Basic VHDL Compiler verdeutlicht den Erfolg dieses Projektes und den hierbei durchgeführten Technologietransfer.
Um die sprachlichen Möglichkeiten und Einsatzgebiete des Systems zu erweitern, wurde ein Preprozessor entwickelt, der nun eine sehr mächtige Sprachmenge für den Logik- und Steuerwerksentwurf ermöglicht. Weiterhin wurde die Architektur des Nachfolgeproduktes SynthesisVHDL entworfen und mit der Implementierung begonnen. Das neue System erweitert die Möglichkeiten der LOG/iC2-Syntheseumgebung um den VHDL-Entwurf auf der Register-Transfer-Ebene.
Die Entwicklung wurde begleitet von Evaluierungen von RT-Synthesesystemen für FPGAs. Neben einfachen Benchmarks, wie den in der Industrie verbreiteten PREP-Benchmarks, wurden komplexere Beispiele bis hin zu ATM-Steuerungen und Prozessoren untersucht. Ein weiterer wichtiger Punkt bei der Zusammenarbeit war der Technologietransfer und die Schulung des Projektpartners.
Da eingebettete Systeme immer komplexer werden, wird die Notwendigkeit einer genaueren Spezifikationen für Hardware und Software größer. Eine Möglichkeit ist die Benutzung von formalen Methoden. Model Checking ist eine bekannte, vollautomatische Methode für die formale Verifikation. Die Benutzung von BDDs (Symbolic Model Checking) erlaubt hier eine Verbesserung.
Die Verifikation wird durchgeführt, nachdem die Partitionierung ausgeführt wurde, obwohl die Eigenschaften sich auf die noch nicht partitionierten Systeme beziehen. Aus diesem Grund ist es nötig, diese Eigenschaften auch zu partitionieren, um sie modular verifizieren zu können. Außerdem benötigt die modulare Verifikation Hypothesen über die Module. Diese Hypothesen können durch ein automatisches model-checking-ähnliches Verfahren extrahiert werden. Ziel dieser Arbeit ist es zu bestimmen, wie Model Checking benutzt werden kann, um eingebettete Systeme zu verifizieren.
Das Ziel dieser Forschungsarbeit ist, ein High-Level-Synthesesystem zu entwickeln, das HW- und SW-Aspekte betrachtet und für eine spezifische Anwendung - einen ATM-Verteiler - geeignet ist.
Hierfür nutzt das Synthesesystem eine Beschreibung des Protokolls (z.B. in Form einer Programmiersprache wie Ada oder C), eine Spezifikation des Steuerungsprozessors (z.B. als ein Full-Custom oder Reconfigurable ASIP, oder als kommerzieller Core) und Parameter, die die Steuerung der Ein-/Ausgänge charakterisieren (z.B. die Größe der Puffer, usw.). Danach wird der Steuerungsprozessor synthetisiert und die Beschreibung des Protokolls in den Befehlsvorrat des synthetisierten Prozessors übersetzt. Zur Synthese der Steuerung der Ein-/Ausgänge werden FPGA Synthesewerkzeuge benutzt.
Auf dem Gebiet der Informationsübertragung mit B-ISDN (Breitband-ISDN) ist ATM (Asynchroner Transfer Modus) eine weitverbreitete Übertragungsmethode.
Der hohen Durchsatzrate wegen (z.B. 155 Mb/s, 622 Mb/s) werden Hardware-Lösungen bei der Steuerung von ATM-Schaltungen benötigt. Bei der Realisierung von ATM-Schaltungen ist eine Entwurfsautomatisierung mittels HDL's (Hardware Description Languages) und entsprechenden Synthese-Werkzeugen zu empfehlen, da die Standardisierung der ATM-Protokolle und -Prozesse nicht abgeschlossen ist und dadurch Änderungen der ATM-Funktionen zu erwarten sind.
Als Anwendungsbeispiel wird eine ATM-Switch-Steuerung mit VHDL modelliert und teilweise mit dem High-Level-Synthesewerkzeug CADDY synthetisiert. Für andere Module werden handelsübliche RT-Synthesewerkzeuge eingesetzt. Ziel der Arbeit ist die Untersuchung, inwieweit die High-Level Synthese in der Entwicklung von ATM-Schaltungen sinnvoll einsetzbar ist.
Die in diesem Projekt zugrunde gelegte Idee bestand darin, klassische Verfahren der Minimierung komplexer VLSI-Schaltungen mit modernen spektralen Ansätzen zu kombinieren. Untersuchungen der Qualität der minimierten Schaltungen haben ergeben, daß sich manche Teile komplexer Schaltungen besser auf der Basis disjunktiver Schaltungsdarstellungen (klassisch) und andere wiederum besser über ihre Reed-Muller-Darstellung (spektral) minimieren lassen. Diese Aussage gilt insbesondere dann, wenn diese Schaltungen auf anwenderprogrammierbaren Bausteinen implementiert werden sollen.
Eine Voraussetzung für die kombinierte klassische und spektrale Minimierung ist die effiziente Darstellung und Manipulation mehrstufiger Schaltungen. Hierzu wurde das Konzept der binären Entscheidungsdiagramme (BDD) auf spektrale Darstellungen erweitert und unter dem Namen funktionale Entscheidungsdiagramme (FDD) eingeführt.
Auf der Basis dieser Darstellungsarten wurden Minimierungsverfahren zur Optimierung zwei- und mehrstufiger Schaltungen entwickelt. Insbesonderedie zusätzlichen Minimierungsmöglichkeiten spektraler Darstellungen - wie z. B. die Optimierung der Polarität von Variablen - wurden dabei besonders berücksichtigt. Die Abbildung der minimierten Schaltungen auf eine geeignete Zieltechnologie unter Berücksichtigung der Optimierung der Laufzeit war ein zweiter wesentlicher Kernpunkt der Arbeiten. Auch hier wurden spektrale Ansätze mit klassischen Verfahren kombiniert.
Anhand von realen Entwurfsbeispielen wurde gezeigt, daß unter ausschließlicher Verwendung klassischer Minimierungsverfahren ein enormes Minimierungspotential unbenutzt blieb. Das Ergebnis dieser Arbeiten ist ein interaktives Werkzeug, welches auch bei zahlreichen Veröffentlichungen internationale Beachtung erzielte. Dieses Werkzeug wurde erfolgreich in den am Forschungsbereich eingesetzten Entwurfsablauf integriert.
Der Entwurf von anwendungsspezifischen integrierten Schaltungen (ASIC) ist aufgrund der hohen Komplexitäten und kurzen Entwicklungszyklen nur unter weitestgehender Verwendung von CAD-Werkzeugen wirtschaftlich. Ein Teilschritt in der automatischen Synthese ist die Logiksynthese, in der eine Verhaltensbeschreibung, aus booleschen Logikzeichnungen bestehend, bezüglich Chipfläche und Laufzeit optimiert und auf die Gatter der Zieltechnologie abgebildet wird.
Die Laufzeitoptimierung in Schaltnetzen ist in der Regel ein iterativer Vorgang, in dem die mehrstufige Schaltungsstruktur solange umgeformt wird, bis die Lösung den geforderten Werten von Fläche und Verzögerungen genügt. Man spricht dabei von einem Trade-Off zwischen Chipfläche und Verzögerungen, da in der Regel mit einer Reduktion der Verzögerungen ein Flächenzuwachs einhergeht. Mittlerweile haben sich neben den klassischen, verhaltensbasierten Darstellungen für boolesche Funktionen auch sogenannte spektrale Verfahren etabliert. Für viele Klassen von booleschen Funktionen, wie z.B. arithmetische und symmetrische Funktionen gelten sie als kompakter als die klassischen Darstellungen und können unter Verwendung geeigneter Technologien (z.B. FPGA) auch flächengünstigere Realisierungen liefern.
In dieser Arbeit wurden Kombinationen von verhaltensbasierten und spektralen Darstellungen, sogenannte Mehrbereichsdarstellungen, in ihrer Anwendung in der Logiksynthese untersucht. Die Mehrbereichsdarstellungen wurden zur Berechnung des Laufzeitmodells für RAM-basierte FPGA und zu deren Laufzeitoptimierung und Technologieabbildung eingesetzt. Als ein Ergebnis konnte gezeigt werden, daß die Kompaktheit solcher kombinierten Darstellungen den Flächenzuwachs der Laufzeitoptimierungen nach einer Technologieabbildung auf RAM-basierte FPGA kompensieren kann.
Beim Entwurf digitaler Schaltungen ist die Validierungszeit zu einem entscheidenden Kosten- und Zeitfaktor geworden. Hierbei kann eine aufwendige Simulation durch eine realitätsnahe Emulation auf programmierbaren Bausteinen ergänzt werden. Die zunehmende Komplexität bei zugleich steigendem Flächenbedarf digitaler Schaltungen erfordert im allgemeinen eine Aufteilung (Partitionierung) auf mehrere programmierbare Bausteine.
Im Berichtszeitraum wurde eine automatisierte Implementierung von Schaltungen durch Prototypsysteme mit mehreren programmierbaren Bausteinen realisiert. Das Programmsystem COSY geht von einer Gatter- oder Register-Transfer-Beschreibung aus und kann eine Partitionierung unter Benutzervorgaben (Zeitverhalten, ...) durchführen. Entscheidend ist hierbei die Einhaltung Baustein-spezifischer Randbedingungen wie Anschluß- oder Gatteranzahl.
Mit zunehmender Systemkomplexität und der Notwendigkeit, Schaltungen hierarchisch und auf hohen Abstraktionsebenen zu spezifizieren, wird auch der Anteil synthetisierter Schaltungen rasch ansteigen. Diese Entwicklung hat unmittelbaren Einfluß auf den Produktionstest, der ausgehend von einer funktional korrekten Systemspezifikation die produzierten Schaltungen auf Herstellungsfehler überprüft. Um möglichst viele Fehler mit hoher Wahrscheinlichkeit erkennen zu können, erfolgt die Generierung entsprechender Testmuster sowie die Festlegung geeigneter Fehlermodelle typischerweise auf der Gatterebene und somit für eine synthetisierte, dem Designer unbekannte Schaltungsrepräsentation.
Hieraus ergeben sich an die Testgenerierung mehrere Anforderungen: Zum einen ist eine automatische Testmustergenerierung unerläßlich, zum anderen sind in den meisten Fällen Zusatzbeschaltungen erforderlich, um die geforderte Qualität der Fehlererfassung zu erhalten. Hierzu wurden am FZI mehrere Selbsttestverfahren entwickelt, die ausgehend von einer automatisch generierten Testmustermenge die entworfene Schaltung so erweitern, daß neben einer hohen Fehlererfassung auch die entsprechende Hardware zur automatische Erzeugung der erforderlichen Testmuster auf dem Chip realisiert wird. Diese Selbsttestverfahren ermöglichen eine sehr kostengünstige Testdurchführung, da hierbei auf teure Testgeräte verzichtet werden kann.
Mit dieser Zielvorgabe wurde beispielsweise ein Verfahren entwickelt, das von einer deterministisch generierten Testmustermenge ausgehend ein linear rückgekoppeltes Schieberegister so konfiguriert, daß mit minimalem Hardwareaufwand eine ausreichende Fehlererfassung erreicht wird. Im Vergleich zum Stand der Technik wird hierbei die Methode des Testens mit gewichteten Zufallsmustern eingesetzt, wobei die Gewichte nicht auf die Schaltungseingänge, sondern auf die zu erzeugenden Testmuster abgestimmt sind. Experimentelle Daten verdeutlichen einerseits eine Reduktion der erforderlichen Zufallsmusteranzahl bei gleichzeitig reduziertem Hardwareaufwand, andererseits konnte der erforderliche Implementierungsaufwand entscheidend verringert werden.
Die Arbeitsgruppe ,,Neuronale Netze`` am ,,Lehrstuhl für Technische Informatik`` konzentriert sich auf die Fragen der praktischen Anwendbarkeit und die anwendungsorientierte Erforschung dieser innovativen Methoden. Im Mittelpunkt steht die Auswertung komplexer Zusammenhänge, wie sie in der chemischen Sensortechnik, der Qualitätssicherung, bei industriellen Prozessen und bei adaptiven nichtlinearen Approximationsaufgaben auftreten. Der Berichtszeitraum verdeutlicht insbesondere, daß die neuronalen Methoden zunehmend industriell eingesetzt werden und die Projekte der Arbeitsgruppe auch dem Ziel eines Technologie-Transfers von der Hochschule in die Industrie dienen.
Künstliche neuronale Netze nutzen zur Datenauswertung Approximationsschemata, die eine kontinuierliche Funktion beliebig genau nachbilden können. Allerdings wird mit zunehmender Komplexität die Berechnung der Modellparameter immer unsicherer und das Generalisierungsverhalten immer weniger absehbar. Aus diesem Dilemma erwächst die Notwendigkeit, die Komplexität eines Modells entsprechend den Bedürfnissen zu reduzieren ohne dessen Approximationsqualität zu beschränken.
Die topologisch interpolierende selbstorganisierende Karte verfolgt dieses Ziel durch die Nutzung geordneter Repräsentationen in Form von Karten. Ähnlich wie im linearen Fall die Hauptkomponenten-Analyse, realisiert die selbstorganisierende Karte im nichtlinearen Fall eine Dimensionsreduktion. Eine niedrigdimensionale Karte beschränkt die Anzahl der Parameter entsprechend der wirklichen Dimension des Datensatzes. Das Approximationsschema nutzt hierzu bewußt lokale Verarbeitungsprinzipien. Die Positionen von benachbarten Datenpunkten innerhalb der Karte werden geeignet interpoliert. Durch gewichtete Überlagerung lokaler Linearisierungen werden Oszillationen und unkontrollierte Divergenz unterdrückt.
Es kann festgestellt werden, daß die Nutzung topologischer Information bei stützstellenbasierten Interpolationsmodellen zu einer Strukturierung der Interpolation führt und dadurch neue Auswertungs-Prinzipien ermöglicht. Die interpolierende selbstorganisierende Karte stellt ein Bindeglied dar, das die in der Eingabeschicht existente Topologie auch bei der Berechnung des Ausgangs verfügbar macht. Neben der unbestrittenen Bedeutung einer strukturierten Speicherung in topologischen Karten für die Konsistenz und den Abruf von Informationen kommt dieser Struktur hier auch bei der Datenbewertung eine wichtige Bedeutung zu.
Das INTER-System soll eine bidirektionale Verbindung zwischen dem peripheren Nervensystem und externen, signalverarbeitenden Prozessen herstellen. Dieses System soll sowohl die Aufnahme von motorischen Nervensignalen als auch die Stimulierung von sensorischen Axonen ermöglichen. Diese Möglichkeiten eröffnen neue Aspekte im Bereich der Neurobiologie, sensorischer Prothesen oder im Bereich der funktionalen neuromuskulären Stimulation.
Aufgabe der Technischen Informatik ist es hierbei, ein System zur Steuerung von künstlichen Extremitäten aufzubauen. Dies wurde mit Hilfe verschiedener neuronaler Netze realisiert. Zunächst wird ein neuronales Netz (INCA - Independent Components Analysis) zur Unterdrückung des Übersprechens, das bei den Aufnahmen entsteht, angewendet. Danach werden die erkannten Nervensignale mit einer Kohonen-Karte klassifiziert. Schließlich werden die so klassifizierten Nervensignale frequenzdemoduliert und ermöglichen dadurch die Steuerung einer kommerziell erhältlichen Prothese.
Gezielt synthetisierte molekulare Erkennungsstrukturen gewinnen in der chemischen Analytik zunehmend an Bedeutung. Hier sind neue stationäre Interphasen für die Chromatographie unter Berücksichtigung wichtiger Parameter wie Selektivität, Stabilität und Sensitivität entwickelt und optimiert worden.
In einer DFG-Forschergruppe wurde die Anwendung von Selbstorganisationsprinzipien in der Datenreduktion und Klassifikation untersucht. Anhand der Erfordernisse der durch die Kooperationspartner zur Verfügung gestellten Datensätzen wurden zuerst bekannte neuronale Netze getestet, die auf überwachten und unüberwachten Prinzipien basieren. Die Erkenntnisse aus der genauen Analyse der verschiedenen Methoden hat den Grundstein für die weitere wissenschaftliche Arbeit gelegt. Erste Ergebnisse liefern eine Vorhersagegenauigkeit von über 90% für die Datensätze der gaschromatographischen Enantiomerentrennung, was als hervorragend einzustufen ist.
Durch neue Methoden für die Interpretation des neuronalen Modells kann dieses in Fuzzy-Regeln (,,If Bedingung Then Aussage ``) umgewandelt werden. Der Fachmann kann so leicht das Netz interpretieren, mit existierenden Modellen und Kenntnissen aus der Chemie vergleichen und mathematische Zusammenhänge zwischen der molekularen Struktur und den thermodynamischen Kennwerten erarbeiten.
Die Farbkalibration ist ein entscheidender Aspekt in der Photo- und Druckindustrie sowie in der Computergraphik. In dieser Arbeit wird die Möglichkeit der Anwendung von überwachten Algorithmen neuronaler Netze auf das Problem der Farbwiederherstellung und Farbkorrektur untersucht. Die Farbverzerrungen bestehen typischerweise aus dem Verlust von Helligkeit und Farbsättigung, aus einer Farbverfälschung und aus Grenzdefekten. Die hohe Nichtlinearität der Farbverzerrungen führt dazu, daß die konventionellen Methoden (wie z.B. polynomiale Regression) zu zeitaufwendig oder zu ineffizient sind.
Die neuronalen Netze zeigen die Fähigkeit, dreidimensionale Abbildungen zwischen verzerrten und echten Farben eines Bildes aufzubauen. Die Vorverarbeitung entsprechend der CIE-Farbkonvertierung führt dazu, daß der Algorithmus in stark verzerrten Grenzbereichen effektiv einsetzbar ist. Die Möglichkeit, durch einmaliges Training die Systeme auf beliebige Scanner zu portieren, öffnet ein großes Feld für zukünftige Anwendungen.
Das untersuchte System eliminiert die Verzerrungen des farbverarbeitenden Gerätes bestmöglich. Die Funktionalität solcher Algorithmen wird am Beispiel eines handelsüblichen Scanners demonstriert. Ein wichtiges Ziel ist weiterhin, eine passende neuronale Netz-Architektur zu entwickeln, die hohe Wiederherstellungsfähigkeit im Bezug auf gegebene Zeitbegrenzungen realisiert. Diese Arbeit wird durch die Gottlieb Daimler- und Karl Benz-Stiftung gefördert.
Ziel des vom BMBF geförderten Vorhabens ist die Erarbeitung neuartiger Analysemethoden für die steigende Datenflut bei der elektrischen Parametermessung in der Halbleiterfertigung.
Es ist eine wesentliche Aufgabe des Projekts, sich entwickelnde Probleme bei der Chipfertigung frühzeitig zu erkennen, um rechtzeitig Maßnahmen zur Qualitätssicherung ergreifen zu können. Um Fehlermodes und vor allem deren Ursachen möglichst schnell zu finden, werden sowohl Daten in der Herstellungsphase der Bauteile als auch später Messungen am fertigen Produkt zur Interpretation herangezogen. Dabei soll aus der Signatur (Fingerprint) der Störung bestimmter Meßparameter auf die Prozeßbereiche geschlossen werden, aus denen diese Störung stammt.
Zwei wesentliche Probleme treten bei der Analyse solcher Prozeßdaten (PCM-Daten) mit linearen Methoden auf:
Nach einer Vorverarbeitung mit statistischen Methoden verwenden wir Kohonen's selbstorganisierende Karte (SOM) zur Clusteranalyse mit dem Ziel, sich wiederholende Fingerprints zu entdecken. Erste Ergebnisse unserer Arbeit zeigen, daß dieser Ansatz zu vielversprechenden Resultaten führt.
Gegenstand des interdisziplinären Forschungsvorhabens ist die automatische Auswertung klinischer EEG-Ableitungen mit Hilfe selbstorganisierender Karten. Das Ziel ist, ein neuronales Netz zu entwickeln, welches digitalisierte EEGs in klinisch relevante Kategorien (entsprechend einer international anerkannten Klassifikation) typisiert. Der wesentliche Unterschied zu herkömmlichen Netzen ist die Transparenz der Verarbeitung, sowie die Tatsache, daß Zwischenergebnisse und Netzkonfigurationen aussagekräftig interpretiert und analysiert werden können.
Das Signal wird vorverarbeitet und mit Hilfe von zwei Netzen analysiert. Das neuronale Netz I klassifiziert das EEG-Muster, das Netz II ordnet diese den vorgegebenen Kategorien zu. Das Netz I ist als Kohonen-Netz angelegt und lernt unüberwacht. Es bietet dem medizinischen Fachpersonal neuartige graphische Analysemöglichkeiten. Das Netz II lernt durch überwachte Adaption die Ausgabemuster von Netz I auszuwerten, entsprechend einer vorher durchgeführten Klassifikation durch Experten. Ziel ist der Einschluß möglichst vieler klinisch relevanter Kategorien, um die Anzahl fehlklassifizierter Muster zu minimieren.
Um die langen Auswertungszeiten von Kohonen's SOM zu reduzieren, entwickeln wir ein allgemeines Hardware-Software Co-Entwurfs-System. Es besteht aus einem allgemeinen Prozessor, einem anwendungsspezifischen Hardwareanteil und einer parallelen Schnittstelle. Der Softwareteil des Co-Entwurfs-Systems läuft auf dem allgemeinen Prozessor; der Hardwareteil wird durch ein High-Level-Synthese-System synthetisiert und auf ein Chip geladen. Die parallele Schnittstelle steuert die Datenkommunikation und Signalsynchronisation.
Zum Hardwareteil haben wir mit dem ,,Behavioral Compiler`` von Synopsys eine Schaltung für die SOM mit 4096 Neuronen und 4 Komponenten entworfen und mit Hilfe der Xilinx-Werkzeuge in programmierbare FPGAs (Field Programmable Gate Arrays) umgesetzt. Die Implementierung erfolgt auf dem Weaver-Prototyping-System. Es besteht aus einem Weaver-Board mit vier Xilinx XC4025 und einer Speicher-Karte. Obwohl das Design für eine spezifische Anwendung entwickelt wurde, besteht das Ziel in einer Generalisierung der SOM-Schaltung und damit des HW/SW Co-Entwurfs-System für unterschiedliche Anwendungen.
Die Bedeutung automatischer Gesichtserkennungssysteme wächst: sie nehmen eine bedeutende Stellung innerhalb der biometrischen Zutrittskontrollsysteme ein, sie werden an Geldautomaten zur Erhöhung der Sicherheit eingesetzt und sie dienen zur Durchsicht großer Bilddatenbestände.
Herkömmliche automatische Gesichtserkennungssysteme können leicht durch vor die Kamera gehaltene Fotos von Personen getäuscht werden, da die Kamera nur zwei Dimensionen erfaßt. Die Verhinderung einer solchen Täuschung wird als Fotoausschluß bezeichnet. Alle zum Stand der Technik zählenden Systeme können einen derartigen Fotoausschluß unter Verwendung von Standardkomponenten (Rechner, Framegrabber, Aufnahmekonsole, Beleuchtung) nicht gewährleisten. Diese Arbeit entwickelte zwei neue Methoden zur Lösung dieses Problems.
Es handelt sich um ein neues Erkennungsverfahren, welches sich stärker als andere Systeme am biologischen Vorbild des menschlichen visuellen Systems orientiert. Besonders das Konzept der sakkadischen Augenbewegungen wird durch entsprechende Algorithmen simuliert. Die notwendigen Konzepte zur Merkmalsextraktion und Klassifikation werden genauer betrachtet.
Gesichtserkennungssysteme sollen das menschliche Erkennungssystem nachbilden. Die bisher entwickelten Algorithmen lassen sich jedoch bei weitem noch nicht mit der menschlichen Erkennungsleistung vergleichen.
Es wurde ein System entwickelt, das die Fragen von der Berechtigung durch eine Ausweiskarte, über die Segmentierung des Gesichtes, bis zur Erkennung behandelt. Der Schwerpunkt liegt auf der Segmentierung des Gesichtes und der daraus folgenden Extraktion der Gesichtsmerkmale. Zur Bestimmung der Gesichtsmerkmale (Augen, Nase, Gesichtskontur, etc.) sind Regeln erforderlich, die implementiert wurden. Anhand der Gesichtsmerkmale kann darüber hinaus eine Rotation, eine Translation und eine Skalierung des Gesichtes durchgeführt werden.
Um eine möglichst gute Segmentierung zu gewährleisten, ist es notwendig, Beleuchtungsinvarianz und Hintergrundhomogenität sicherzustellen. Dazu wurde neben softwaretechnischen Verfahren auch ein spezielles Gerät entwickelt, das durch Infrarotlicht und einen speziellen Infrarotfilter Tageslicht weitestgehend ausblenden kann.
Die Arbeitsgruppe Rechnerarchitektur beschäftigt sich schwerpunktmäßig mit parallelen Rechnerarchitekturen und der Entwicklung von parallelen Programmiermethoden und -werkzeugen.
Im Einzelnen wird an einem Verfahren gearbeitet, daß automatisch sequentielle C-Programme parallelisiert und auf unterschiedlichsten Rechnerarchitekturen in bestmöglicher Art zur Ausführung bringt. Ausgehend von einer konventionellen C-Beschreibung wird das Programm hinsichtlich Datenabhängigkeiten untersucht und in ein zweites C-Programm überführt. Dieses ist um explizite Anweisungen zur parallelen Ausführung angereichert und muß nun auf den einzelnen Rechnerarchitekturen möglichst effizient ausgeführt werden. Zu diesem Zweck wurde eine weitgehend architekturunabhängige Laufzeitumgebung geschaffen, die sowohl auf Maschinen mit gemeinsamem, als auch mit getrenntem Hauptspeicher arbeitet. Sie nutzt die auf der augenblicklichen Architektur verfügbaren Möglichkeiten und schafft damit eine weitere Abstraktionsebene über der eigentlichen Hardware.
Um die Skalierbarkeit der entworfenen Programme und der zugrundeliegenden Hardware bestimmen zu können, wurde ein Analysewerkzeug entworfen und implementiert. Dieses erlaubt eine Auswertung eines bereits abgeschlossenen Programmlaufes und liefert Daten über Auslastung der einzelnen Prozessoren, wie auch die Gesamtlaufzeit des Programmes. Es benötigt ein vom Laufzeitsystem automatisch erstelltes Protokoll eines Programmlaufes, sowie Daten über die ausführende Maschine. Durch Verändern der maschinenspezifischen Daten ist eine Simulation des Programmlaufes für andere Rechnerarchitekturen möglich. Dies ermöglicht den Entwurf von Algorithmen, die auf einer möglichst breiten Basis von Maschinen effizient arbeiten. Diese Arbeiten im Teilprojekt C6 des Sonderforschungsbereichts 382 ,,Verfahren und Algorithmen zur Simulation physikalischer Prozesse auf Höchstleistungsrechnern`` durchgeführt.
Simulationenen hydrodynamischer Abläufe spielen in weiten Bereichen der Physik eine zentrale Rolle. Hier werden Teilchenmethoden zur Simulation eingesetzt. Speziell für Smoothed Particle Hydrodynamics (SPH) wurde bereits von Fukushige et. al. Spezialhardware entwickelt und untersucht (GRAPE-1A).
Am Lehrstuhl für Technische Informatik werden Beschleunigungsverfahren für Teilchenmethoden auf parallelen Rechnerarchitekturen untersucht und entwickelt. Im Mittelpunkt der Untersuchungen stehen dabei Architekturen mit verteiltem Hauptspeicher. Maschinen mit gemeinsamen Hauptspeicher werden als Vergleichsobjekt mit untersucht. Das Hauptkriterium bei der Untersuchung ist die Skalierbarkeit der Algorithmen. Hier kommt das am Lehrstuhl entwickelte Verfahren zur Simulation verschiedener Rechnerarchitekturen zum Einsatz.
Die entwickelten parallelen Algorithmen werden auf den Rechnern Cray T3E und NEC SX4/32 implementiert und getestet. Dies geschieht in enger Zusammenarbeit mit Teilprojekten aus dem SFB 382.
In den langjährigen Forschungsarbeiten zum Thema ,,CAD-Frameworks`` standen insbesondere Entwurfsabläufe und deren Optimierung im Vordergrund, die sich auch in der High-Level Synthese wiederfinden. Insbesondere der Aspekt rechenzeitintensiver Aufgaben war Gegenstand von Forschungsarbeiten mit dem Ziel, die Entwurfskosten durch eine verkürzte Abarbeitungszeit der Entwurfsabläufe zu senken.
Der am FZI entwickelte Ansatz erreicht dieses Ziel durch eine verringerte Ausführungszeit der einzelnen Entwurfswerkzeuge, wobei die erforderlichen Ressourcen (beispielsweise Rechenzeit- und Hauptspeicherbedarf) der einzelnen Werkzeuge in Betracht gezogen werden, um eine möglichst günstige Verteilung der Werkzeuge auf ein Rechnernetz zu finden. Der Quell-Code der Entwurfswerkzeuge muß hierzu nicht verändert werden. Die Angaben über die zu erwartenden Ressourcen werden aus einem Framework entnommen, das diese Informationen verwaltet. Die Verteilung ist benutzertransparent und wird automatisch von einer zentralen Lastverteilungskomponente vorgenommen, die eine optimierte Zuordnung zwischen Entwurfswerkzeug und ausführenden Rechnern durchführt. Der vorgeschlagene Ansatz verhindert beispielsweise die Auswahl eines bereits überlasteten Rechners, fördert andererseits die Belegung eines Rechners mit mehreren, sich ergänzenden Aufgaben und führt somit zu entscheidend verkürzten Antwortzeiten.
Da durch das Erreichen der technischen Grenzen bei Entwurf von Rechnern in absehbarer Zukunft keine so große Geschwindigkeitssteigerung mehr zu erwarten ist, wird zunehmend versucht, durch die Einführung neuer Architekturkonzepte wie Parallelrechner und spezielle Hardware-Komponenten eine weitere Steigerung zu erreichen. Wegen der Probleme beim Programmieren ist die Akzeptanz und Verbreitung solcher Systeme relativ gering.
Da Neuimplementierungen von Standard-Software sehr aufwendig und fehleranfällig sind, wurden in dieser Arbeit die Möglichkeit untersucht, wie in vorhandenen sequentiellen Programmen die dort implizit vorhandene Parallelität ausgenutzt werden kann. Zu diesem Zweck werden die Möglichkeiten zu einer automatischen Parallelisierung untersucht. Da hier entschieden werden muß, welche Teile eines Programms als Hardware realisiert werden sollen, muß mit Hilfe einer Profilanalyse auf der Basisblockebene das dynamische Verhalten überprüft werden. Anhand der Abhängigkeitsbeziehungen von Programmteilen kann dann im Rahmen einer Partitionierung mit Hilfe eines neu entwickelten Programmiermodells entschieden werden, welche Partitionen als Software und welche als Hardware realisiert werden sollen. Mit Hilfe der Profilanalysemethoden und des Programmiermodells kann zusätzlich durch eine Performanzanalyse das System bewertet werden, um Engpässe möglichst früh zu erkennen.
Die Ausführung von Sprüngen und Verzweigungen hält in Prozessoren mit Pipeline die Befehlsverarbeitung oft auf. Falls der Ausgang der Sprünge jedoch bekannt ist, kann mit der Befehlsausführung spekulativ fortgefahren werden. Um den Befehlsdurchsatz zu maximieren, wird deshalb ein Sprungvorhersageverfahren gebraucht, das einen großen Teil der Sprünge korrekt vorhersagt. In dieser Arbeit wurden verschiedene Sprungvorhersageverfahren vorgestellt und auf ihre Eignung für die IBM System/370 Architektur anhand tracegestützter Simulation untersucht. Weil für diese Architektur die Vorhersage der Sprungrichtung nicht ausreicht, wurden die Vorhersageverfahren mit einem branch target buffer integriert, so daß die Vorhersage auch Zieladressen liefert. Durch Simulationen konnte gezeigt werden, daß diese Verfahren auf kommerziellen Workloads zu ca. 85-90% korrekte Zieladressen liefern.